課程概述 |
1.Architecture Overview and Languages for High Performance
2.Preliminary Transformations – Loop normalization, Data flow analysis
l Definition-Use Chains (aka FUD chains, factored use-def chains)
l Deadcode Elimination
l Constant Propagation
l Static Single-Assignment Form
l LLVM case study – Data Flow Analysis – SSA and use_iterator
3.Scalar Analysis with Definition-Use Chains
l Constructing Factored Definition-Use Chains
l FUD chains for Arrays
l Finding all reaching definitions
l Finding Implicit reference in FUD chains
l Induction-Variable Exposure
l LLVM case study – Constant Propagation
4.Handling Control Flow
l If-Conversion
l If-Conversion in LLVM for ARM
5.Register allocations
l Color-based
l Linear-Scan
l Vareity
l LLVM’s register allocation algorithms
6.Interprocedural Analysis and Optimization
l IPA
(1)Interprocedural Problems
(2)Flow-insensitive analysis
(3)Flow-sensitive analysis
(4)Call graph construction
l IPO
1. Inline
2. Procedure cloning
3. Stack wrapper
l Whole program optimization (LTO or IMO)
l LTO in LLVM |